﻿Public Class frmTrZlecenie

    Private mvarChanged As Boolean
    Private mvarCancel As Boolean = False
    Private mvarDbHolder As clsDataBase
    Private mvarUzytkownik As clsUzytkownik
    Private mvarZlecenie As clsInhTrZlecenie

    Public Sub New(Zlecenie As clsInhTrZlecenie)
        ' To wywołanie jest wymagane przez projektanta.
        InitializeComponent()

        ' Dodaj inicjację po wywołaniu funkcji InitializeComponent().
        mvarDbHolder = New clsDataBase(VAR_CONNECTION_PARAMETERS, VAR_ERROR_HANDLER)

        mvarZlecenie = New clsInhTrZlecenie
        mvarZlecenie = Zlecenie
        UzupelnijDane()

    End Sub

    Private Sub UzupelnijDane()

        Dim lvarData As String = "null"

        txtInfNumerZlecenia.Text = mvarZlecenie.Numer
        txtInfKlient.Text = mvarZlecenie.Klient.NazwaSkrocona
        txtInfTerminRealizacji.Text = mvarZlecenie.Termin.Date.ToShortDateString
        txtInfStatusZlecenia.Text = mvarZlecenie.Status.Nazwa
        Dim lvarI As Integer
        For Each lvarPozycja As clsInhTrPozycjaZlecenia In mvarZlecenie.PozycjeZlecenia
            lvarI += 1
            dgvInformacje.Rows.Add(lvarI, lvarPozycja.Status.Nazwa, lvarPozycja.PowierzonyMaterial, lvarPozycja.GatunekMaterialu.NazwaAng, lvarPozycja.Wymiar, lvarPozycja.TolDolna, lvarPozycja.TolGorna, lvarPozycja.Wydluzenie, lvarPozycja.WytrzymaloscMin, lvarPozycja.WytrzymaloscMax, lvarPozycja.Ilosc & " " & lvarPozycja.Jednostka.Jednostka, lvarPozycja.Pakowanie.Nazwa, lvarPozycja.Magazyn.Nazwa, lvarPozycja.Uwagi)
            dgvInformacje.Rows(lvarI - 1).Tag = lvarPozycja
            If lvarPozycja.DataZmiany.ToString <> "null" Then
                dgvInformacje.Rows.Item(lvarI - 1).DefaultCellStyle.BackColor = Color.FromArgb(255, 80, 80)
                If mvarZlecenie.DataZmiany.ToString <> "null" Then
                    If lvarPozycja.DataZmiany > mvarZlecenie.DataZmiany Then
                        lvarData = lvarPozycja.DataZmiany.ToString
                    Else
                        lvarData = mvarZlecenie.DataZmiany.ToString
                    End If
                Else
                    lvarData = lvarPozycja.DataZmiany.ToString
                End If
            End If
        Next
        If dgvInformacje.Rows.Count > 0 Then
            dgvInformacje.ClearSelection()
        End If

        If lvarData <> "null" Then
            grbAktualizacja.Visible = True
            lblAktualizacja.Text = "OSTATNIA AKTUALIZACJA ZLECENIA:" & lvarData
            Me.Height = 445
            grbPozycje.Location = New Point(6, 99)
            grbZlecenie.Location = New Point(6, 55)
        End If

    End Sub

    Private Sub dgvInformacje_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvInformacje.CellDoubleClick

        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz pozycje zlecenia", "WIREMET")
        Else
            Dim lvarFrm As New frmTrPozycjaZlecenia(mvarZlecenie.Klient.NazwaSkrocona, mvarZlecenie.Termin.Date.ToShortDateString, CType(dgvInformacje.SelectedRows(0).Tag, clsInhTrPozycjaZlecenia).Id, 0, 0, False, False)
            With lvarFrm
                .MdiParent = MdiParent
                .Show()
            End With
        End If

    End Sub

    Function SprawdzeniePozycjiSchematow() As Boolean
        Dim lvarReturn As Boolean

        For Each lvarSchemat As clsInhTrSchemat In CType(dgvInformacje.SelectedRows(0).Tag, clsInhTrPozycjaZlecenia).SchematyProdukcji
            For Each lvarPozycjaSchematu As clsInhTrPozycjeSchematu In lvarSchemat.PozycjeSchematu
                If lvarPozycjaSchematu.OpcjaPozycjiSchematuId <> 1 And lvarPozycjaSchematu.StatusId = 6 Then
                    lvarReturn = True
                Else
                    lvarReturn = False
                End If
            Next
        Next

        Return lvarReturn
    End Function


    'Private Sub frmTrZlecenie_Activated(sender As Object, e As EventArgs) Handles Me.Activated

    '    Dim lvarTmpStaus As Integer = mvarZlecenie.StatusId
    '    Dim lvarWyzn As Boolean = False

    '    dgvInformacje.Rows.Clear()
    '    mvarZlecenie = New clsInhTrZlecenie(mvarZlecenie.ID, mvarDbHolder)
    '    For Each lvarPozycja As clsInhTrPozycjaZlecenia In mvarZlecenie.PozycjeZlecenia
    '        If lvarPozycja.StatusId > lvarTmpStaus Then
    '            lvarTmpStaus = lvarPozycja.StatusId
    '            lvarWyzn = True
    '        Else
    '            lvarTmpStaus = lvarPozycja.StatusId
    '            lvarWyzn = False
    '            Exit For
    '        End If
    '    Next

    '    If lvarWyzn Then
    '        mvarDbHolder.BeginTrans()
    '        mvarZlecenie.StatusId = lvarTmpStaus
    '        mvarZlecenie.Save(mvarDbHolder)
    '        mvarDbHolder.CommitTrans()
    '    End If
    '    UzupelnijDane()
    '    ' End If


    'End Sub

    Private Sub frmTrZlecenie_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        mvarDbHolder.Close()
    End Sub


    Private Sub cmdOdswiez_Click(sender As Object, e As EventArgs) Handles cmdOdswiez.Click

        dgvInformacje.Rows.Clear()

        mvarZlecenie = New clsInhTrZlecenie(mvarZlecenie.ID, mvarDbHolder, True)
        UzupelnijDane()

        Dim lvarWyznZakonczenia As Boolean

        For lvarI As Integer = 0 To dgvInformacje.Rows.Count - 1
            If CType(dgvInformacje.Rows(lvarI).Tag, clsInhTrPozycjaZlecenia).StatusId = 5 Then
                lvarWyznZakonczenia = True
            Else
                lvarWyznZakonczenia = False
                Exit For
            End If
        Next

        If lvarWyznZakonczenia Then
            mvarDbHolder.BeginTrans()
            mvarZlecenie.StatusId = 5
            mvarZlecenie.Save(mvarDbHolder)
            mvarDbHolder.CommitTrans()
        End If
        mvarZlecenie = New clsInhTrZlecenie(mvarZlecenie.ID, mvarDbHolder, True)
        dgvInformacje.Rows.Clear()
        UzupelnijDane()

    End Sub

End Class